package com.java.test1;

import org.junit.Test;

/**
 * @author shkstart
 * @create 2021-01-05 14:57
 */
public class StringMethodTest {
    /*
     * int length():返回字符串的长度：return value.length
     * char charAt(int index)：返回某索引处的字符return valun[index]
     * boolean isEmpty():判断是否为空字符串：return value.lenth==0
     * String toLowerCase():使用默认语言环境，将所有的字符串转换成小写
     * String toUpperCase():使用默认语言环境，将所有的字符串转换成大写
     * String trim():返回字符串副本，忽略前导空白和尾部空白
     * boolean equals(object obj):比较字符串的内容是否相同
     * boolean equalsIgnoreCase(String anotherString):与equals方法类似，忽略大小写
     * String concat(String str):将指定字符串连接到此字符串后边，相当于"+"
     * int compaerTo(String anotherString):比较两个字符串大小
     * String substring(int beginIndex):返回一个新的字符串，它是从beginIndex这个位置开始截的
     * String substring(int beginIndex,int endIndex):返回一个新字符串，它是从beginIndex到endIndex(不包含  )截的
     *
     * */


    @Test
    public void test1() {
        String s1 = "hello";
        System.out.println(s1.length());
        System.out.println(s1.charAt(3));
        System.out.println(s1.isEmpty());
        String s2 = "HelloWorld";
        String s3 = s2.toUpperCase();
        System.out.println(s3);
        System.out.println(s2);
        System.out.println(s2.toUpperCase());


        String s4 = "  he  llo wor l  d";
        System.out.println(s4.trim());

    }

    @Test
    public void test2() {
        String s1 = "helloWorld";
        String s2 = "helloworld";
        System.out.println(s1.equals(s2));   //false
        System.out.println(s1.equalsIgnoreCase(s2));   //true


        String s3 = s1.concat(s2);
        System.out.println(s3);


        s1 = "hello";
        s2 = "world";
        int a = s1.compareTo(s2);
        System.out.println(a);

    }

    /*
     * booLean endWith(String suffix):测试此字符串是否以指定后缀结束
     * boolean startWith(String prefix)：测试此字符串是否以指定前缀开始
     * boolean startWith(String prefix,int toffset):测试此字符串以指定位置开始的子字符串是否以指定前缀开始
     *
     * */
    @Test
    public void test3() {
        String s1 = "hello";
        boolean a = s1.endsWith("lo");
        System.out.println(a);      //false
        boolean b = s1.startsWith("He");
        System.out.println(b);      //false

        boolean c = s1.startsWith("el", 1);
        System.out.println(c);      //true

        String s2 = "he l l o";
        System.out.println(s2.length());        //8
    }

    /*
     * boolean contains(charSequence s):当且仅当此字符串包含 指定的char值序列时，返回值是true
     * int indexOf(String str):返回指定子字符串在此字符串第一次出现的索引
     * int indexOf(String str,int fromIndex):返回指定子字符串在此字符串第一次出现的索引，从指定的索引开始
     * int lastIndexOf(String str):返回指定子字符串在此字符串出现在最右边的位置的索引
     * int lastIndexOf(String str,int fromIndex):返回指定子字符串在此字符串出现在最右边的位置的索引,从指
     * 定的索引反向搜索
     * 注：indexOf和lastIndexOf如果都没有找到，返回值是-1.
     *
     * 什么情况下indexOf（str）和lastIndexOf(str)的返回值相同
     *情况一：当要查找的子字符串在此字符串中只出现过一次
     *情况二：没找到（-1）
     *
     *
     * */
    @Test
    public void test4() {
        String s1 = "hello";
        boolean a = s1.contains("el");
        System.out.println(a);      //true

        int b = s1.indexOf("l");
        System.out.println(b);

        int c = s1.indexOf("g");
        System.out.println(c);


    }

    /**
     * 替换
     * String replace(char oldChar,char newChar):返回一个新的字符串，它是通过newChar替换的
     * String replace(charSequence target,charSequence replacement):使用指定的字面值替换
     * String replaceAll(String regex,String replacement):使用给定的replacement来替换此字符串
     * String replaceFirst(String regex,String replacement):使用给定的replacement替换,返回修改后的字符串
     * <p>
     * 匹配：
     * String matches(String regex):告知此字符串是否匹配给定的正则表达式
     * 切片：
     * String split(String regex):根据给定的正则表达式匹配拆分此字符串
     * String split(String regex,int limit):根据给定的正则表达式拆分此字符串，最多不
     */
    @Test
    public void test5() {
        String s1 = "luzhikun";
        String a = s1.replace('l', 'l');
        System.out.println(a);

        String b = s1.replace("lu", "li");
        System.out.println(b);


        System.out.println("其他都是跟javaWEB相关的正则表达式，暂时不讲");

    }
}
